//package approval.dao;
//
//import java.io.IOException;
//import java.sql.CallableStatement;
//import java.sql.ResultSet;
//import java.sql.Types;
//import java.util.ArrayList;
//import javax.faces.bean.ManagedBean;
//import javax.faces.bean.ManagedProperty;
//import javax.faces.bean.SessionScoped;
//import javax.faces.context.FacesContext;
//import javax.servlet.http.HttpSession;
//
//import resource.pojo.Approvedoc;
//import resource.pojo.ListApprove;
//import models.pojo.AcEliManager;
//import models.pojo.Employee;
//import models.util.MySqlDataAccessHelper;
//
//@ManagedBean(name = "docDAO")
//@SessionScoped
//public class DocDAO {
//
//	private int numAppvoring;
//	private int numAppvored;
//	private int numYourDoc;
//	private int numYourDocApprove;
//	MySqlDataAccessHelper mysqlHelper = new MySqlDataAccessHelper();
//
//	@ManagedProperty(value = "#{approvedocDAO.getEntityClass()}")
//	private ApprovedocDAO approveDocDAO;
//	@ManagedProperty(value = "#{yourDocApprove.getEntityClass()}")
//	private YourDocApprove yourDocApprove;
//	@ManagedProperty(value = "#{docDecline.getClassEntity()}")
//	private DocDecline docDecline;
//	@ManagedProperty(value = "#{newListDocDAO.getClassEntity()}")
//	private NewListDocDAO newListDocDAO;
//
//	
//	
//
//	public NewListDocDAO getNewListDocDAO() {
//		return newListDocDAO;
//	}
//
//	public void setNewListDocDAO(NewListDocDAO newListDocDAO) {
//		this.newListDocDAO = newListDocDAO;
//	}
//
//	public DocDecline getDocDecline() {
//		return docDecline;
//	}
//
//	public void setDocDecline(DocDecline docDecline) {
//		this.docDecline = docDecline;
//	}
//
//	public YourDocApprove getYourDocApprove() {
//		return yourDocApprove;
//	}
//
//	public void setYourDocApprove(YourDocApprove yourDocApprove) {
//		this.yourDocApprove = yourDocApprove;
//	}
//
//	public ApprovedocDAO getApproveDocDAO() {
//		return approveDocDAO;
//	}
//
//	public void setApproveDocDAO(ApprovedocDAO approveDocDAO) {
//		this.approveDocDAO = approveDocDAO;
//	}
//
//	public void setNumYourDocApprove(int numYourDocApprove) {
//		this.numYourDocApprove = numYourDocApprove;
//	}
//
//	public MySqlDataAccessHelper getMysqlHelper() {
//		return mysqlHelper;
//	}
//
//	public void setMysqlHelper(MySqlDataAccessHelper mysqlHelper) {
//		this.mysqlHelper = mysqlHelper;
//	}
//
//	public DocDAO() {
//
//	}
//
//	public int getNumAppvoring() {
//		try {
//			mysqlHelper.open();
//			CallableStatement stm = mysqlHelper.getConnection().prepareCall(
//					"{call numdocWillApproving(?)}");
//			stm.registerOutParameter(1, Types.INTEGER);
//			stm.execute();
//			numAppvoring = stm.getInt(1);
//		} catch (Exception e) {
//		} finally {
//			mysqlHelper.close();
//		}
//		return numAppvoring;
//	}
//
//	public void setNumAppvoring(int numAppvoring) {
//		this.numAppvoring = numAppvoring;
//	}
//
//	public int getNumYourDocApprove() {
//		numYourDocApprove = 0;
//		HttpSession ss = (HttpSession) FacesContext.getCurrentInstance()
//				.getExternalContext().getSession(true);
//		mysqlHelper.open();
//		try {
//			Employee em = (Employee) ss.getAttribute("Employee");
//			if (em != null) {
//				String sql = "select * from approvedoc where IDStatus=2 and not ISNULL(approvedoc.IDGroupApprove)";
//				ResultSet rs = mysqlHelper.executeQuery(sql);
//				while (rs.next()) {
//					Approvedoc ap = new Approvedoc(rs.getInt("IDApproveDoc"),
//							rs.getString("Tile"), rs.getString("Content"),
//							rs.getString("IDEmployee"),
//							rs.getString("IDGroupApprove"),
//							rs.getDate("Timecreate"), rs.getInt("IDStatus"),
//							rs.getInt("IDTypeDoc"), rs.getDate("TimeApprove"),
//							rs.getString("comment"),
//							rs.getString("Description"));
//
//					if (checkApproved(ap.getGroupApprove().getAllListApprove(),
//							em))
//						numYourDocApprove++;
//				}
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			mysqlHelper.close();
//		}
//		return numYourDocApprove;
//	}
//
//	private boolean checkApproved(ArrayList<ListApprove> all, Employee em) {
//		if (all.size() > 0) {
//			ListApprove lst = all.get(0);
//			if (lst.getOrder().intValue() == 1
//					&& lst.getiDEmployee().equalsIgnoreCase(em.getIdemployee())
//					&& lst.getiDStatus().intValue() == 4) {
//				return true;
//			}
//			if (all.size() == 1) {
//
//				if (lst.getiDEmployee().equalsIgnoreCase(em.getIdemployee())
//						&& lst.getiDStatus().intValue() == 4) {
//					return true;
//				} else
//					return false;
//			} else {
//				ListApprove l = getListApprove(all, em);
//				if(l==null)return false;
//				for (ListApprove lst1 : all) {
//					
//					if (lst1.getOrder().intValue() > l.getOrder().intValue())
//						break;
//					if (lst1.getOrder().intValue() < l.getOrder().intValue()) {
//						if (lst1.getiDStatus().intValue() == 5)
//							continue;
//						if (lst1.getiDStatus().intValue() != 5)
//							return false;
//					}
//					if (lst1.getOrder().intValue() == l.getOrder().intValue()
//							&& lst1.getiDStatus().intValue() == 4)
//						return true;
//				}
//				return false;
//			}
//		}
//		return false;
//	}
//
//	private ListApprove getListApprove(ArrayList<ListApprove> all, Employee em) {
//		for (ListApprove lst1 : all) {
//			if (lst1.getiDEmployee().equalsIgnoreCase(em.getIdemployee()))
//				return lst1;
//		}
//		return null;
//	}
//
//	private ListApprove getListApprove(ArrayList<ListApprove> list) {
//		HttpSession ss = (HttpSession) FacesContext.getCurrentInstance()
//				.getExternalContext().getSession(true);
//		Employee em = (Employee) ss.getAttribute("Employee");
//		for (int i = 0; i < list.size(); i++) {
//			if (em.getIdemployee()
//					.equalsIgnoreCase(list.get(i).getiDEmployee())
//					&& !checkFirstApprove(list.get(i).getOrder(), list))
//				return list.get(i);
//		}
//		return null;
//	}
//
//	private boolean checkFirstApprove(int order, ArrayList<ListApprove> list) {
//		if (order == 1)
//			return false;
//		for (int i = 0; i < order - 1; i++) {
//			if (list.get(i).getStatus().getiDStatus() == 4)
//				return true;
//		}
//		return false;
//	}
//
//	private ArrayList<Approvedoc> allApprove() {
//		mysqlHelper.open();
//		ArrayList<Approvedoc> ap = new ArrayList<Approvedoc>();
//		try {
//			String sql = "select * from approvedoc where IDStatus=2 and not ISNULL(approvedoc.IDGroupApprove)";
//			ResultSet rs = mysqlHelper.executeQuery(sql);
//			while (rs.next()) {
//				ap.add(new Approvedoc(rs.getInt("IDApproveDoc"), rs
//						.getString("Tile"), rs.getString("Content"), rs
//						.getString("IDEmployee"), rs
//						.getString("IDGroupApprove"), rs.getDate("Timecreate"),
//						rs.getInt("IDStatus"), rs.getInt("IDTypeDoc"), rs
//								.getDate("TimeApprove"), rs
//								.getString("comment"), rs
//								.getString("Description")));
//			}
//		} catch (Exception e) {
//		} finally {
//			mysqlHelper.close();
//		}
//		return ap;
//	}
//
//	public int getNumAppvored() {
//		mysqlHelper.open();
//		try {
//			String sql = "select count(*) from approvedoc where IDStatus=1";
//			ResultSet rs = mysqlHelper.executeQuery(sql);
//			if (rs.next())
//				numAppvored = rs.getInt(1);
//		} catch (Exception e) {
//		} finally {
//			mysqlHelper.close();
//		}
//		return numAppvored;
//	}
//
//	public void setNumAppvored(int numAppvored) {
//		this.numAppvored = numAppvored;
//	}
//
//	public int getNumYourDoc() {
//		mysqlHelper.open();
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Employee em = (Employee) ss.getAttribute("Employee");
//		try {
//			String sql = "select count(*) from approvedoc where IDEmployee='"
//					+ em.getIdemployee() + "'";
//			ResultSet rs = mysqlHelper.executeQuery(sql);
//			if (rs.next())
//				numYourDoc = rs.getInt(1);
//		} catch (Exception e) {
//		} finally {
//			mysqlHelper.close();
//		}
//		return numYourDoc;
//	}
//
//	public void setNumYourDoc(int numYourDoc) {
//		this.numYourDoc = numYourDoc;
//	}
//
//	public String logout() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		if (obj != null)
//			ss.removeAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		f.getExternalContext().redirect(path + "/index.jsp");
//		return "";
//	}
//
//	public String gotoMainApproving() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			getApproveDocDAO().getAllDocSelect().clear();
//			getApproveDocDAO().getAllListApprove().clear();
//			getApproveDocDAO().setCheck(false);
//			getApproveDocDAO().setCurrentApprovedoc(null);
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/mainApproving");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotoAppvored() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			getApproveDocDAO().getAllDocSelect().clear();
//			getApproveDocDAO().getAllListApprove().clear();
//			getApproveDocDAO().setCheck(false);
//			getApproveDocDAO().setCurrentApprovedoc(null);
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/docApproved");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotoYourDoc() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/docApproved");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotoyouDocumentApprove() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			getYourDocApprove().getAllDocSelect().clear();
//			getYourDocApprove().setCurrentApprovedoc(null);
//			getYourDocApprove().setCheck(false);
//			getYourDocApprove().getAllListApprove().clear();
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName()
//							+ "/erp/ApprovalMain");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotoDocDecline() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			getDocDecline().setCurrentApprovedoc(null);
//			getDocDecline().setScript("");
//			getDocDecline().getAllListApprove().clear();
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/docDecline");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotoNewDoc() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			getNewListDocDAO().getAllDocSelect().clear();
//			getNewListDocDAO().setCheck(false);
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/newListDoc");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//
//	public String gotodocWillApprove() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/docWillApprove");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	
//	public String gotodocStorageTemporary() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/StorageTemporaryDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	
//	public String gotodocumentPending() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		String path = f.getExternalContext().getRequestContextPath();
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/documentpending.html");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	
//	public String gotoDeclineDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/DeclineApprovalDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoCompletedApprovalDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/CompletedApprovalDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoPendingApprovalDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/PendingApprovalDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoApprovedDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/ApprovedDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoDeclinedDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/DeclinedDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoNotApprovedDocument() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/NotApprovedDocument");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//	public String gotoPendingReceiver() throws IOException {
//		FacesContext f = FacesContext.getCurrentInstance();
//		HttpSession ss = (HttpSession) f.getExternalContext().getSession(true);
//		Object obj = ss.getAttribute("Employee");
//		AcEliManager eli = (AcEliManager) ss.getAttribute("accessDB");
//		if (obj != null) {
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/PendingReceiver");
//		} else
//			f.getExternalContext().redirect(
//					"/" + eli.getDatabaseName() + "/erp/welcome");
//		return "";
//	}
//}
